home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 1 / QRZ Ham Radio Callsign Database - December 1993.iso / ucsd / packet / tcpip / sys5 / iscwmpst.z / iscwmpst / tcp / src / mail_retrn.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-04-13  |  1.3 KB  |  52 lines

  1. /* @(#) $Header: mail_retrn.c,v 1.4 91/04/12 18:35:12 deyke Exp $ */
  2.  
  3. /* Mail Delivery Agent for returned Mails */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <sys/rtprio.h>
  8. #include <unistd.h>
  9.  
  10. #include "mail.h"
  11.  
  12. /*---------------------------------------------------------------------------*/
  13.  
  14. void mail_return(jp)
  15. struct mailjob *jp;
  16. {
  17.  
  18.   FILE * fpi, *fpo;
  19.   char  line[1024];
  20.   int  i;
  21.  
  22.   fflush(stdout);
  23.   if (fork()) return;
  24.   rtprio(0, RTPRIO_RTOFF);
  25.   for (i = 0; i < _NFILE; i++) close(i);
  26.   setpgrp();
  27.   fopen("/dev/null", "r+");
  28.   fopen("/dev/null", "r+");
  29.   fopen("/dev/null", "r+");
  30.   if (fpi = fopen(jp->dfile, "r")) {
  31.     sprintf(line, "/usr/lib/sendmail -oi -oem -f '<>' %s", jp->from);
  32.     if (!(fpo = popen(line, "w"))) exit(1);
  33.     fprintf(fpo, "From: Mail Delivery Subsystem <MAILER-DAEMON>\n");
  34.     fprintf(fpo, "To: %s\n", jp->from);
  35.     fprintf(fpo, "Subject: Returned mail\n");
  36.     putc('\n', fpo);
  37.     fprintf(fpo, "   ----- Transcript of session follows -----\n");
  38.     fprintf(fpo, "%s\n", jp->return_reason);
  39.     putc('\n', fpo);
  40.     fprintf(fpo, "   ----- Unsent message follows -----\n");
  41.     fgets(line, sizeof(line), fpi);
  42.     while (fgets(line, sizeof(line), fpi)) fputs(line, fpo);
  43.     pclose(fpo);
  44.     fclose(fpi);
  45.   }
  46.   unlink(jp->cfile);
  47.   unlink(jp->dfile);
  48.   unlink(jp->xfile);
  49.   exit(0);
  50. }
  51.  
  52.